home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 40
/
Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso
/
Aminet
/
misc
/
emu
/
ATUtilities.lha
/
ATUtilities
/
BASIC
/
EMSTEST.BAS
< prev
next >
Wrap
BASIC Source File
|
2000-09-26
|
2KB
|
99 lines
$INCLUDE "REGNAMES.INC"
CLS
REM -- Adresse des EMS-Fensters -
REG %AX,(&H41*256)
CALL INTERRUPT &H67
FrameSeg=REG(%BX)
PRINT "Segment=$";HEX$(FrameSeg)
REM -- 8 Seiten belegen ---------
REG %AX,(&H43*256)
REG %BX,8
CALL INTERRUPT &H67
ems=REG(%DX)
ok=INT(REG(%AX)/256)
IF ok<>0 THEN
BEEP
PRINT "Nicht genug freier EMS-Speicher !"
GOTO ende
END IF
PRINT "Handle=";HEX$(ems)
REM -- 6 Seiten hinzufgen ------
REG %DX,ems
REG %BX,6
REG %AX,(&H51*256)
CALL INTERRUPT &H67
ok=INT(REG(%AX)/256)
IF ok<>0 THEN
BEEP
PRINT "Nicht genug Speicher zum Anfgen !"
GOTO ende
END IF
REM -- Speichertest -------------
FOR x=0 TO 13
CALL Mapping(x)
CALL Schreibe(CHR$(65+x),CHR$(85-x))
NEXT
FOR x=0 TO 13
CALL Mapping(x)
CALL Test(CHR$(65+x),CHR$(85-x))
NEXT
free:
REM -- Speicher freigeben -------
REG %AX,(&H45*256)
REG %DX,ems
CALL INTERRUPT &H67
REM -- Ende ---------------------
ende:
PRINT ""
PRINT "<< Taste >>"
END
SUB Mapping(seite) SHARED
REG %AX,(&H44*256)+0
REG %BX,seite
REG %DX,ems
PRINT "Einblenden: ";seite
mp=seite
CALL INTERRUPT &H67
END SUB
SUB Schreibe(c1$,c2$) SHARED
DEF SEG = FrameSeg
c1=ASC(c1$)
c2=ASC(c2$)
PRINT "Beschreiben: ";CHR$(c1);" - ";CHR$(c2)
FOR i=0 TO 400
POKE i,c1
NEXT
FOR i=16000 TO 16383
POKE i,c2
NEXT
END SUB
SUB Test(c1$,c2$) SHARED
DEF SEG = FrameSeg
c1=ASC(c1$)
c2=ASC(c2$)
PRINT "Test"
FOR i=0 TO 30
IF PEEK(i)<>c1 THEN
PRINT "FEHLER !!! Seite";mp;" c1=";chr$(c1);" is=";chr$(peek(i))
goto ok1
END IF
NEXT
ok1:
FOR i=16350 TO 16383
IF PEEK(i)<>c2 THEN
PRINT "FEHLER !!! Seite";mp;" c1=";chr$(c2);" is=";chr$(peek(i))
goto ok2
END IF
NEXT
ok2:
END SUB